Introduction à l'algorithmique (Scratch et autres)
Le but de cette planche d'exercice est d'introduire par des exercices interactifs simples les notions élémentaires de l'algorithmique : les tests, les boucles et les variables.
IEnigmes algorithmiques utilisant 
Scratch est un "langage de programmation" qui permet de représenter et faire fonctionner des algorithmes à l'aide de blocs visuels et intuitifs.
Les exercices suivants peuvent faits de différentes manières :
- Par difficulté croissant : difficulté simple, intermédiaire puis confirmée
- Par thématique : respecter l'ordre proposé
1Boucles 
Exercice 1
Enigmes simples de type 'labyrinthe' :
- Boucles conditionnelles
- Objectif : déplacement d'un élément graphique
Exercice 2
Enigmes intermédiaires de type 'dessin' :
- Boucles conditionnelles imbriquées
- Objectif : réaliser une figure géométrique à l'aide d'un algorithme
Exercice 3
Enigmes confirmées de type 'Labo de jeux' :
- Boucles Pour
- Plusieurs groupes de blocs
- Objectif : utilisation de compteurs pour gérer des éléments de jeux
2Conditions 
Exercice 4
Enigmes simples de type 'Abeilles' :
- Structures conditionnelles
- Boucles conditionnelles
- Objectif : déplacement d'un élément graphique
Exercice 5
Enigmes intermédiaires de type 'Abeilles' :
- Structures conditionnelles
- Boucles conditionnelles
- Plusieurs blocs dont fonction
- Objectif : déplacement d'un élément graphique
3Variables 
Exercice 6
Enigmes intermédiaires de type 'Labo Jeux' :
- Structures conditionnelles
- Boucles conditionnelles
- Gestion d'évènements
- Objectif : déplacement d'un élément graphique
Exercice 7
Enigmes confirmées de type 'Dessin' :
- Utilisation de variables
- Boucles conditionnelles
- Réutilisation de blocs préexistants
- Objectif : Réalisation d'une figure géométrique à l'aide d'un algorithme
IIDes algorithmes sans blocs
Exercice 8
On peut voir ci-dessous l'écran d'un petit jeu vidéo. Dans ce jeu, plusieurs variables sont utilisées :
- S est la variable qui contient le score
- P est la variable qui contient le nombre de pièces
- C est la variable qui contient le nombre de coeurs
- X et Y sont les variables qui contiennent l'abscisse et l'ordonnée du personnage (l'origine \((0;0)\) est en bas à gauche de l'écran de jeu.)
Pour faire une affectation, il faut taper dans commande :
Cliquer ici pour ouvrir le jeu dans un nouvel onglet
variable = valeur
Séparer avec des ; pour faire plusieurs affectations en une fois.
Il est possible de réaliser de nombreuses actions avec des affectations. Le but ici est de débloquer tous les trophées. Vous pouvez essayer de le faire directement. Sinon vous pouvez suivre les questions ci-dessous pour vous aider.
1
Ecrire une affectation qui :
a
change le score
b
change le niveau de vie
c
change le nombre de pièces d'or
2
Essayez de déplacer le personnage avec une affectation :
a
Pour vous déplacer horizontalement
b
Pour vous déplacer verticalement
c
Pour vous déplacer en diagonale
3
Ce jeu n'est pas finalisé, mais vous pouvez l'améliorer : normalement à la fin d'un niveau chaque pièce devrait rapporter 30 points et chaque coeur 100 points. Ecrire une affectation qui modifie le score en conséquence (sans calculer).
4
Plus difficile : écrire une affectation qui déplace le personnage de 1 carreau vers la droite. De même pour la gauche.
Attention, il ne suffit pas d'écrire x=3 si votre personnage se trouve à x=2. Il faut que l'affection marche peu importe où le personnage se trouve
5
Même question pour se déplacer vers la gauche, le bas ou le haut.
6
Pas évident : écrire plusieurs affectations qui permettent d'échanger les variables x et y.
Attention, même si vous écrivez deux affectations en une seule ligne, elles ne sont pas réalisées en même temps, mais l'une après l'autre....
7
Avez vous débloqué tous les trophées ?
Exercice 9
On peut voir ci-dessous l'écran d'un petit jeu vidéo. A droite, on voit les valeurs des variables utilisées :
Cliquer ici pour ouvrir le jeu dans un nouvel onglet
- S, pour le score, P pour les pièces, et C pour le nombre de coeurs
- X et Y sont les variables qui contiennent l'abscisse et l'ordonnée du personnage (l'origine \((0;0)\) est en bas à gauche de l'écran de jeu.)
- gameover est un booléen. Quand le jeu démarre, il vaut faux. Si il prend la valeur vrai, le jeu s'arrête
- plouf est un booléen. Quand il vaut le personnage affiché est normal. Si il vaut faux, le personnage affiché est immergé.
- Les instructions que vous entrez seront exécutées à chaque fois que vous déplacez le personnage avec les flèches du clavier.
-
Il est possible d'exécuter directement les instructions en cliquant sur
- Si vous souhaitez réinitialiser le jeu, vous pouvez taper l'instruction init() et l'exécuter
Attention, il y a une grosse différence entre les instructions si x = 0 .... et x = 0 :
La première est un test, et la deuxième est une affectation
Pour bien les différencier, on écrit en général si x == 0 .... pour le test, et x = 0 pour l'affectation
Certains langages proposent d'écrire si x = 0 .... pour le test, et x <-- 0 pour l'affectation
Ici, c'est un cas très rare, vous pouvez choisir l'une des deux manières.
1
La zone d'eau à droite commence pour x=17. Entrer les instructions suivantes, et déplacer le personnage dans cette zone.
si x > 16
alors
plouf <-- vrai
fin
A quoi servent ces instructions (expliquer chaque ligne).
alors
plouf <-- vrai
fin
2
Proposer une suite d'instructions qui permettent au personnage :
- d'être immergé quand il entre dans l'eau à droite
- d'apparaître normalement quand il sort de cette zone
3
Proposer une suite d'instructions qui font la même chose pour la zone d'eau en haut à gauche
Il est possible d'utiliser les connecteurs logiques "et" et "ou".
4
Proposer une suite d'instructions qui provoquent le gameover si le personnage tombe dans le trou.
5
a
On suppose que nager fatigue le personnage : modifier les instructions pour que le personnage perdre un coeur à chaque déplacement dans une zone d'eau.
b
Modifier les instructions pour que le gameover soit provoqué si il n'y a plus de coeurs.